package com.atde._04_structural_design_patterns.facade;


/**
 * @BelongsProject: hsp_java_design_mode
 * @BelongsPackage: com.atde._04_structural_design_patterns.facade
 * @Author: Del
 * @CreateTime: 2025-06-23  09:03
 * @Description: 外观模式 --- 播放器
 * @Version: 1.0
 */
public class DVDPlayer {

    // 私有化构造器
    private DVDPlayer () {}

    // 私有化实例变量 加入volatile关键字进行修饰
    private static volatile DVDPlayer instance;

    public static DVDPlayer getInstance() {
        // 第一次检查
        if (instance == null) {
            // 进行 加锁
            synchronized (DVDPlayer.class) {
                // 第二次检查
                if (instance == null) {
                    // 创建实例
                    instance = new DVDPlayer();
                }
            }
        }
        return instance;
    }

    public void on() {
        System.out.println("DVD 播放器正在开启...");
    }

    public void off() {
        System.out.println("DVD 播放器正在关闭...");
    }

    public void play() {
        System.out.println("DVD 播放器正在播放...");
    }

    public void pause() {
        System.out.println("DVD 播放器正在暂停...");
    }
}
